#include <climits>//INT_MAX and INT_MIN
class Solution {
public:
    int reverse(int x) {
        //利用字符串反转和抛异常
        // int res = 0;
        // std::string s = std::to_string(x);
        // std::reverse(s.begin(), s.end());
        // try
        // {
        //     res = std::stoi(s);
        //     if(x<0)
        //     res = -res;
        // }
        // catch(std::exception& e)
        // {
        // }
        // return res;

        //利用/和%运算符
        int res = 0;
        while(x)
        {
        if(res>INT_MAX/10 || res<INT_MIN/10)
        return 0;
        int rev = x%10;
        res = res*10+rev;
        x/=10;
        }
        return res;
    }
};